Hybrid Web Container for Cross-Platform Mobile Applications

ABSTRACT

The systems, methods and computer program products for designing cross-platform mobile applications that execute on multiple operating platforms. The mobile application is activated with a workflow that includes data from a data source. The mobile application includes a plurality of web files configured to cause the mobile application to manipulate data from the data source. At least one web file in the plurality of web files is configured to display one or more screens of the mobile application. At least one file in the plurality of web files is configured to implement business logic of the mobile application. The mobile application also includes a container service configured to communicate data between the mobile device and a data source.

his application is a continuation of prior U.S. patent application Ser.No. 13/106,672 filed on May 5, 2011, that will issue into U.S. Pat. No.8,635,522, which is incorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is generally related to mobile applications, andmore particularly related to cross-platform mobile applications thatexecute on mobile devices having different operating platforms.

2. Background Art

As the popularity of mobile devices grows, so does the need for mobileapplications that allow users to receive, review, and update data.Mobile applications grew from simple applications targeting anindividual device, to complex applications that retrieve and transmitdata from complex back-end systems to a variety of mobile devices. Thisconstant access to data allows users to use the mobile devices asfunctional and essential business tools.

As the popularity of the mobile devices grew, many different types ofcomputing devices became available to the users. Those mobile devicesmay operate on different operating platforms, each platform having itsown specifications, libraries, etc. As a result, a mobile applicationthat executes on one operating platform is often not compatible withother operating platforms.

When an application developer designs a mobile application, the mobileapplication must be compatible with an operating platform executing on amobile device. To ensure compatibility of a mobile application withmultiple mobile devices, application developers are forced to designmultiple versions of a mobile application, where each version iscompatible with a particular operating platform. Often, each version isdesigned in a different programming language that acts as an interfacebetween the mobile application and the operating platform of a mobiledevice. This causes a waste in time and resources as the same mobileapplication is written in multiple versions. Additionally, developingmultiple versions of the same mobile application may require multipledevelopers, as one developer may not have technical know-how to developthe same mobile application in multiple programming languages orunderstand the intricacies associated with each operating platform.

To avoid designing and maintaining multiple versions of the same mobileapplication, application developers attempted to use Extensive MarkupLanguage (“XML”) and metadata to design one instance of a mobileapplication that is compatible with multiple operating platforms.However, designing mobile applications using XML and metadata islimiting because those mobile applications often lack flexibility andcustomization necessary to design competitive display screens, forms andcontrols.

Therefore, what is needed is an improved approach for designing across-platform mobile application that executes on multiple operatingplatforms.

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to systems, methods and computerprogram products for generating a cross-platform mobile application thatexecutes on multiple operating platforms. The cross-platform mobileapplication for receiving data from a data source and manipulating dataon a plurality of mobile devices is generated using a plurality of webfiles. The web files are packaged and distributed to the plurality ofmobile devices.

The present invention is also directed to systems, methods and computerprogram products for using a cross-platform mobile application tomanipulate data. The cross-platform mobile application is activated witha workflow that includes data from a data source. The cross-platformmobile application includes a plurality of web files configured to causethe cross-platform mobile application to manipulate the data. At leastone web file in the plurality of web files is configured to display oneor more screens of the cross-platform mobile application. At least onefile in the plurality of web files is configured to implement businesslogic of the cross-platform mobile application. The cross-platformmobile application also includes a container service configured tocommunicate data between the mobile device and a data source.

Further features and advantages of the present invention, as well as thestructure and operation of various embodiments thereof, are described indetail below with reference to the accompanying drawings. It is notedthat the invention is not limited to the specific embodiments describedherein. Such embodiments are presented herein for illustrative purposesonly. Additional embodiments will be apparent to persons skilled in therelevant art(s) based on the teachings contained herein.

BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying drawings, which are incorporated herein and form a partof the specification, illustrate the present invention and, togetherwith the description, further serve to explain the principles of theinvention and to enable a person skilled in the relevant art(s) to makeand use the invention.

FIG. 1 is a block diagram of a distributed system environment, accordingto an embodiment.

FIG. 2 is a block diagram of an unwired enterprise platform, accordingto an embodiment.

FIG. 3 is a block diagram of an exemplary embodiment of web files thatgenerate a cross-platform mobile application, according to anembodiment.

FIG. 4 is a block diagram of a mobile device capable of executing across-platform mobile application, according to an embodiment.

FIG. 5 is a flowchart of a method for designing a cross-platform mobileapplication, according to an embodiment.

FIG. 6 is a flowchart of a method for distributing a cross-platformmobile application, according to an embodiment.

FIG. 7 is a flowchart for manipulating data with a cross-platform mobileapplication, according to an embodiment.

FIG. 8 illustrates an example computer system useful for implementingcomponents of the invention.

The features and advantages of the present invention will become moreapparent from the detailed description set forth below when taken inconjunction with the drawings. In the drawings, like reference numbersgenerally indicate identical, functionally similar, and/or structurallysimilar elements. Generally, the drawing in which an element firstappears is indicated by the leftmost digit(s) in the correspondingreference number.

DETAILED DESCRIPTION OF THE INVENTION

-   1. Introduction

The following detailed description of the present invention refers tothe accompanying drawings that illustrate exemplary embodimentsconsistent with this invention. Other embodiments are possible, andmodifications can be made to the embodiments within the spirit and scopeof the invention. Therefore, the detailed description is not meant tolimit the invention. Rather, the scope of the invention is defined bythe appended claims.

FIG. 1 is a block diagram of a distributed system 100. Distributedsystem 100 allows for sending, receiving, storing and updating databetween multiple client devices and data sources. Distributed system 100includes a network 102, multiple data sources 104 and multiple clientdevices, such as mobile devices 106.

Network 102 may be any network or combination of networks that can carrydata communication. Such a network 102 may include, but is not limitedto, a local area network, metropolitan area network, and/or wide areanetwork such as the Internet. Network 102 can support protocols andtechnologies including, but not limited to, World Wide Web protocolsand/or services. Intermediate web servers, gateways, or other serversmay be provided between components of the system shown in FIG. 1depending upon a particular application or environment.

Data source 104 is a computing device, such as a server or anotherdevice capable of storing and disseminating data in a data set 108.Example data sources 104 are a web service 104 a, a database 104 b, or aSystems, Applications and Products (SAP) Server 104 c, available fromSAP AG of Weinheim, Germany, to name only a few. Typically, data sources104 use network 102 to disseminate data to the computing devices, suchas mobile devices 106. Data sources 104 also use network 102 to receiveand store data from the client devices, such as mobile devices 106.

Data set 108 includes content or data that is stored in data source 104.Data in data set 108 may be digitized content that is collected,organized, stored, updated and retrieved from data source 104. Exampledata in data set 108 may be variables, numbers, characters, documents,images, etc.

Mobile device 106 is a computing device under control of a user and iscapable of requesting and receiving data from data sources 104. Examplemobile devices 106 are smart phones, such as BlackBerry 106 a, iPhone106 b, Android 106 c, Windows Mobile 106 d. etc. Because memory (asdescribed in detail in FIG. 8) on mobile devices 106 is usually smallerthan memory on data sources 104, mobile devices 106 typically are ableto store and process a subset of data set 108. Data that is processed onmobile device 106 is stored in mobile data subset 110. After data inmobile data subset 110 is processed, mobile device 106 and data source108 synchronize the changes to the data.

Mobile devices 106 operate on a variety of operating platforms. Forexample, and without limiting, BlackBerries 106 a operate on BlackBerryOS by RIM Inc., iPhones 106 b operate on iOS by Apple Inc., Androids 106c operate on a Linux-based kernel, and Windows Mobiles 106 d operate onWindows Mobile by Microsoft Inc. As a result, conventional applicationdevelopers are either forced to develop mobile applications formanipulating data on mobile devices 106 in multiple developmentlanguages, such as Java for BlackBerries 106 a, Objective-C for iPhones106 b, a version of Java developed by Google Inc., for Androids 106 c,and C# (C-Sharp) developed by Microsoft Inc., for Windows Mobile 106 d,or limit the customization included in the mobile application anddevelop the mobile application with XML and metadata.

-   2. System Architecture

FIG. 2 is a block diagram of an Unwired Enterprise Platform (UEP) 200.UEP is a mobile application platform that simplifies development,deployment and management of cross-platform mobile applications. UEP 200allows an application developer to design and implement a custom,cross-platform mobile application that executes on multiple operatingplatforms. UEP 200 includes an Unwired Enterprise Server (“UES”) 202, anUnwired Enterprise Workspace (“UEW”) 204 and an Enterprise ControlCenter (“ECC”) 206. Example UEP 200 is a Sybase Unwired Platform (“SUP”)available from Sybase, Inc. of Dublin, Calif.

UES 202 includes mobile business objects (“MBOs”) 210 and workflowpackages 212. MBO 210 is a software object, similar to, for example, aclass in C++ or Java programming languages. It encapsulates businesslogic of mobile application 209. MBO 210 also includes attributes thatmap to data in data set 108. When mobile application 209 requires data,mobile applications use MBOs 210 to retrieve the required data from dataset 108.

MBO 210 is developed and compiled on UEW 204, such as, for example, MBO210 b. After compilation, MBO 210 b is deployed to UES 202, where UES202 binds MBO 210, such as MBO 210 a, to data source 104.

Workflow package 212 is a package that enables an application developerto deploy a mobile application to the UES 202. Workflow package 212 thatis stored on UES 202 is workflow package 212 a. Workflow package 212that is compiled on UEW 204 is workflow package 212 b.

Workflow package 212 include web files 214 that include mobileapplication. 209, connectivity files that enable connectivity betweenUES 202, data source 104 and mobile device 106, and installation filesthat deploy mobile application 209 to mobile devices 106. In anembodiment, UES 202 may receive workflow package 212 from UEW 204 as acompressed package or in a ZIP file format. A person skilled in the artwill appreciate that a zip file may include multiple files that werecompressed using a data compression algorithm that reduces file size.

Each workflow package 212 includes web files 214 that include a mobileapplication 209. Unlike conventional mobile applications that executeonly on computing devices having a compatible operating platform, webfiles 214 enable mobile application 209 to execute on mobile devices 106having differing operating platforms. Moreover, unlike conventionalmobile applications that use metadata to display screens on thecomputing devices and do not allow for extensive customization of thescreen layout, web files 214 generate mobile applications 209 thatinclude extensive customization and data interaction.

When UES 202 receives workflow package 212, UES 202 deploys mobileapplication 209 as web files 214 to mobile devices 106. On mobile device106, web files 214 are installed in a workflow container 216, asdescribed below.

When mobile device 106 receives data from UES 202, a user may manipulatedata. After a user manipulates data, mobile device 106 synchronizes withUES 202 by returning the manipulated data to UES 202. On UES 202, themanipulated data is stored in UES data subset 208.

UES 202 uses MBO 210 to store and retrieve data from data source 104.For example, UES 202 uses MBOs 210 associated with mobile application209 to access and retrieve data from data set 108. When UES 202retrieves data from data set 108, it stores data on UES 202 as UES datasubset 208. Periodically, UES 202 synchronizes with data source 104 byupdating data set 108 with the manipulated data stored in UES datasubset 208. Example UES 202 is a Sybase Unwired Server, from Sybase,Inc. of Dublin, Calif.

FIG. 3 is a block diagram of an exemplary embodiment 300 of web filesthat generate a cross-platform mobile application, according to anembodiment. Web files 214 include, but are not limited to, HTML (HyperText Markup Language) file 302, JavaScript file 306 and CSS file 308.

HTML file 302 displays screens of mobile application 209 using HTML. Aperson skilled in the art will appreciate that HTML is used fordesigning a web page. As a result, a screen in mobile application 209resembles a web page and can be displayed by a web browser. HTML fileincludes forms 304 that are HTML tags. Each form 304 is a screen inmobile application 209. When a user navigates between different screens,using for example, a web browser on mobile device 106, user actuallynavigates between different forms in HTML file 302.

JavaScript file 306 includes methods that execute business logic ofmobile application 209. The methods included in JavaScript file 306 maybe triggered when a user selects a link or a button included in form304, opens a particular form 304, etc. Additionally, JavaScript file 306allows an application developer to include functionality that activatesother features or applications native to mobile device 106. A personskilled in the art will appreciate that a native application is anapplication that is designed to run on an operating platform of mobiledevice 106. For example, a developer may add methods to JavaScript file306 to activate the camera or a calculator on mobile device 106.

CSS file 308 includes a style sheet language. The style sheet languageis used to describe the presentation of a document, such as a webpagewritten in HTML, to a user. For example, CSS file 308 includes elementsthat control layout of a webpage, text size, color, and font.

Going back to FIG. 2. UEW 204 is a development environment provided toan application developer. An application developer uses UEW 204 todevelop, design, test and deploy mobile applications 209, web files 214b, MBOs 210 b, etc. UEW 204 may be a plug-in into a developmentenvironment, such as, for example, Eclipse from EclipseSource Inc., orVisual Studio from Microsoft, Inc.

When a developer designs web files 214 b for mobile application 209, UEW204 provides the developer with a shell of HTML file 302 and JavaScriptfile 306. As described herein, a developer designs screens for mobileapplication 209 by including multiple forms 304 in HTML file 302. Adeveloper is also provided with a shell for JavaScript files 306 todesign business logic particular to mobile application 209. A developermay also use JavaScript files 306 to activate applications or featuresembedded on mobile device 106.

In an embodiment, UEW 204 may generate connectivity methods forconnecting mobile application 209 executing on mobile device 106 to UES202 and data source 104. For example, a developer may providecredentials such as the name of data source 104 and MBO(s) 210 forretrieving data in data set 108. UEW 204 may then use credentialsprovided by an application developer to generated connectivity logic.

When a developer completes designing mobile application 209, such asmobile application 209 b, the developer compiles workflow package 212 b.After UEW 204 generates workflow package 212 b, UEW 204 deploys workflowpackage 212 b to UES 202, as described herein. Example UEW 204 is aSybase Unwired Workspace from Sybase, Inc. of Dublin, Calif.

ECC 206 is a web-based console for configuring and managing UES 202. Anadministrator may use ECC 206 to configure and deploy web files 214included in workflow package 212 to mobile devices 106. An administratormay use ECC 206 to set up connectivity and data synchronization betweenUES 202 and data source 104. An administrator may also use ECC 206 toset up connectivity between UES 202 and mobile device(s) 106 for eachmobile application 209. Example, ECC 206 is a Sybase Control Center,also available from Sybase, Inc. of Dublin, Calif.

FIG. 4 is a block diagram 400 of a mobile device that executes across-platform mobile application. In addition to mobile data subset 110described above, mobile device 106 includes a browser 402, an e-mailsystem 404, and a workflow container 412.

Browser 402 is an application executing on mobile device that receives,presents and traverses information and data over network 102. Browsermay read an HTML file and display the contents of the file as a webpageon a display screen, of, for example, mobile device 106. In addition toaccessing and displaying data, browser 402 also displays screens formobile application 209 by accessing and reading web files 214. Forexample, browser 402 reads HTML file 302 and displays forms 304 includedin HTML file 302 as mobile application screens.

E-mail system 404 receives electronic mail (“e-mail”) over network 102.When e-mail system 404 receives a message 406 from UES 202 for mobileapplication 209, e-mail system 404 displays message 406 as a workflow408. Workflow 408 includes data in data subset 410 from data source 104.Workflow 408 allows a user to use mobile application 209 to review,approve and manipulate data in data subset 410.

Workflow 408 is included with other e-mail messages in email system 404.When a user accesses workflow 408, mobile application 209 is activated,as described below.

Workflow container 412 includes web files 214, a browser interface 414,and container services 416. When UES 202 deploys web files 214 to mobiledevice 106, web files 214 are stored in workflow container 412. In anembodiment, web files 214 are stored in an encrypted storage area onmobile device 106. A person skilled in the art will appreciate that webfiles may be stored in a secure area and/or encrypted storage so thatthe contents of web files 214 are not easily read by unauthorizedparties.

Browser interface 414 enables browser 402 to access web files 214 andpresent the included HTML file 302 to a user. For example, when a useruses e-mail system 402 to accesses workflow 408, browser interface 414activates browser 402 and causes browser 402 to access web files 214.When browser 402 accesses web files 214, browser 402 displays screens tothe user, using forms 304 in HTML file 302. As the user uses workflow408 to access different screens, browser 402 displays different forms304 in HTML file 302.

As the user accesses different screens and performs functions requiredby workflow 408, user executes methods included in JavaScript file 306.For example, by pressing a link that is displayed using HTML file 302, auser may execute a method in JavaScript file 306 that updates data indata subset 410. A user may approve or decline data in data subset 410.A user may also activate an application native to mobile device 106,such as an application that activates a camera or a calculator.

Container services 416 provide connectivity between mobile device 106and UES 202. Container services 416 allow mobile device 106 to exchangedata with UES 202. When mobile device 106 has access to network 102,mobile application 209 may use container services 416 to send data toUES 202 when a user completes processing workflow 406. However, whenmobile device 106 lacks access to network 102, mobile application 209may save the data that was manipulated using workflow 406 in mobile datasubset 110. Once mobile device 106 is able to access network 102, mobiledevice 106 synchronizes with UES 202 and updates UES 202 with datastored in mobile data subset 110.

-   3. Deploying Cross-Platform Mobile Applications to the Server

FIG. 5 is a flowchart 500 of a method for developing a cross-platformmobile application, according to an embodiment.

At step 502, an application developer is provided with an interface fordeveloping web files. For example, UEW 204 provides an applicationdeveloper within an interface for developing web files 214 b. Asdescribed herein, web files 214 b may include HTML file 302, JavaScriptfile 306 and CSS file 308.

At step 504, a developer designs one or more screens. For example, adeveloper uses HTML file 302 to develop forms 304 that are displayed asscreens on mobile device 106. Additionally, UEW 204 provides theapplication developer with CSS file 308 that the developer may use tocustomize the screen layout, color, text font, etc. of screens includedin mobile application 209.

At step 506, a developer customizes mobile application. For example, UEW204 provides a developer with shell JavaScript files 306. The shellincludes functionality that is common to mobile applications 209. In theshell, the developer may customize mobile application 209 by includingmethods that execute business logic for mobile application 209. InJavaScript file 306, a developer may also include methods that activateand/or control features and applications native to mobile device 106.

At step 508, the workflow package is created. For example, UEW 204creates workflow package 212 from web files 214, installation files,connectivity files, etc. In an embodiment, UEW 204 may compress workflowpackage 212 such that it takes up less memory space, as describedherein.

At step 510, a workflow package is deployed to a server. For example,UEW 204 installs workflow package 212 on UES 202, using, for example,network 102.

-   4. Using an Unwired Enterprise Server for Send and Receive Data    between Data Sources and Mobile Devices

FIG. 6 is a flowchart 600 of a method for using a mobile application tosend and receive data, according to an embodiment.

At step 602, a server receives a workflow package. For example, UES 202receives workflow package 212 from UEW 204.

At step 604, a server installs a workflow package. For example, UES 202installs workflow package 212 by executing the included installationfiles. If workflow package 212 is compressed, UES 202 executes adecompression algorithm to, for example, restore web files 214 includedin workflow package 212 to an executable form.

At step 606, a data source is connected to a server. For example, UES202 connects to data source 104 that stores data set 108 that is used bymobile application 209 included in workflow package 212.

At step 608, web files are distributed to mobile devices executing ondifferent mobile platforms. For example, an administrator may use ECC206 to connect to UES 202 and distribute mobile application 209 includedin web files 214 to mobile devices 106. When mobile devices 106 receiveand install web files 214 (which is described in detail in FIG. 7), aflowchart proceeds to step 610.

At step 610, data is retrieved from a data source. For example, 202 usesMBOs 210 associated with mobile application 209 to retrieve data fromdata set 108 on data source 104. When UES 202 retrieves data from dataset 108, UES 202 may store the data in UES data subset 208 or send thedata to mobile device 106.

At step 612, data is sent to a mobile device. For example, UES 202 sendsmessage 206 that includes workflow 408 to mobile device 106. Asdescribed herein, workflow 408 may include data subset 410 from UES datasubset 208 that a user may manipulate using mobile application 209 onmobile device 106.

-   5. Manipulating Data with a Cross-Platform Mobile Application

FIG. 7 is a flowchart of a method 700 for processing data on across-platform mobile application, according to an embodiment.

At step 702, a workflow message is received. For example, mobile device106 receives message 406 that includes workflow 408 using an e-mailsystem 404. As described herein, workflow 408 may ask a user to modify,update and/or delete data by executing instructions in workflow 408.

At step 704, a workflow container is accessed. For example, a user opensworkflow 408 in the same manner as a user opens an e-mail. When a useropens workflow 408, mobile device 106 accesses workflow container 412that includes web files 214 for an associated mobile application 209.

At step 706, the web files are retrieved. For example, mobile device 106retrieves wet files 214 included in workflow contain 412.

At step 708, the data is displayed using the web files. For example,browser interface 414 activates browser 402. When activated, browser 401displays screens included as forms 304 in HTML file 302, as describedherein. Additionally, CSS files 308 may be used to display, layout andcolor of forms 304 included in HTML file 302.

At step 710, a user manipulates data using a cross-platform mobileapplication on a mobile device. For example, as a user traverses forms304, methods included in JavaScript file 306 that manipulate and storedata may be executed, as described herein. Because mobile application209 uses web files 214 to generate screens and process business logicincluded methods, mobile applications 209 may execute on multipleoperating platforms.

At step 712, a user may activate applications on mobile device using aworkflow. For example, a user may traverse to a screen that links to amethod in JavaScript file 306 that launches native application stored onmobile device 106.

At step 714, a mobile device sends updated data to a server. Forexample, mobile device 106 synchronizes data in mobile data subset 110with data stored on UES 202, as described herein.

-   6. Example Computer Implementation

In an embodiment of the present invention, the system and components ofthe present invention described herein are implemented using well knowncomputers, such as computer 800 shown in FIG. 8.

Computer 800 can be any commercially available and well known computercapable of performing the functions described herein, such as computersavailable from International Business Machines, Apple, Sun, HP, Dell,Compaq, Digital, Cray, etc.

Computer 800 includes one or more processors (also called centralprocessing units, or CPUs), such as a processor 806. The processor 806is connected to a communication bus 804. Processors 806 may include anyconventional or special purpose processor, including, but not limitedto, digital signal processor (DSP), field programmable gate array(FPGA), and application specific integrated circuit (ASIC).

Computer 800 includes one or more graphics processing units (also calledGPUs), such as GPU 807. GPU 807 is a specialized processor that executesinstructions and programs selected for complex graphics and mathematicaloperations in parallel.

Computer 800 also includes a main or primary memory 808, such as randomaccess memory (RAM). The primary memory 808 has stored therein controllogic 828A (computer software), and data.

Computer 800 also includes one or more secondary storage devices 810.The secondary storage devices 810 include, for example, a hard diskdrive 812 and/or a removable storage device or drive 814, as well asother types of storage devices, such as memory cards and memory sticks.The removable storage drive 814 represents a floppy disk drive, amagnetic tape drive, a compact disk drive, an optical storage device,tape backup, etc.

The removable storage drive 814 interacts with a removable storage unit816. The removable storage unit 816 includes a computer useable orreadable storage medium 824 having stored therein computer software 828B(control logic) and/or data. Removable storage unit 816 represents afloppy disk, magnetic tape, compact disk, DVD, optical storage disk, orany other computer data storage device. The removable storage drive 1314reads from and/or writes to the removable storage unit 816 in a wellknown manner.

Computer 800 also includes input/output/display devices 822, such asmonitors, keyboards, pointing devices, touch-screen displays, etc.

Computer 800 further includes a communication or network interface 818.The network interface 818 enables the computer 800 to communicate withremote devices. For example, the network interface 818 allows computer800 to communicate over communication networks or mediums 824B(representing a form of a computer useable or readable medium), such asLANs, WANs, the Internet, etc. The network interface 818 may interfacewith remote sites or networks via wired or wireless connections.

Control logic 828C may be transmitted to and from computer 800 via thecommunication medium 824B. More particularly, the computer 800 mayreceive and transmit carrier waves (electromagnetic signals) modulatedwith control logic 830 via the communication medium 824B.

Any apparatus or manufacture comprising a computer useable or readablemedium having control logic (software) stored therein is referred toherein as a computer program product or program storage device. Thisincludes, but is not limited to, the computer 800, the main memory 808,the secondary storage devices 810, the removable storage unit 816 andthe carrier waves modulated with control logic 83C. Such computerprogram products, having control logic stored therein that, whenexecuted by one or more data processing devices, cause such dataprocessing devices to operate as described herein, represent embodimentsof the invention.

The invention can work with software, hardware, and/or operating systemimplementations other than those described herein. Any software,hardware, and operating system implementations suitable for performingthe functions described herein can be used.

-   7. Conclusion

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections, is intended to be used to interpretthe claims. The Summary and Abstract sections may set forth one or more,but not all, exemplary embodiments of the invention as contemplated bythe inventor(s), and thus, are not intended to limit the invention andthe appended claims in any way.

The invention has been described above with the aid of functionalbuilding blocks illustrating the implementation of specified functionsand relationships thereof. The boundaries of these functional buildingblocks have been arbitrarily defined herein for the convenience of thedescription. Alternate boundaries can be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments will so fullyreveal the general nature of the invention that others can, by applyingknowledge within the skill of the art, readily modify and/or adapt forvarious applications such specific embodiments, without undueexperimentation, without departing from the general concept of theinvention. Therefore, such adaptations and modifications are intended tobe within the meaning and range of equivalents of the disclosedembodiments, based on the teaching and guidance presented herein. It isto be understood that the phraseology or terminology herein is for thepurpose of description and not of limitation, such that the terminologyor phraseology of the specification is to be interpreted by the skilledartisan in light of the teachings and guidance.

The breadth and scope of the invention should not be limited by any ofthe above-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents

What is claimed is:
 1. A method for generating a cross-platform mobileapplication, comprising: accessing web files stored on a mobile device,including a forms tile having multiple forms wherein the multiple formscreate display screens for the cross-platform mobile application and ascript file that customizes the cross-platform mobile application withbusiness logic, wherein the multiple forms designate a display screenper form; and generating, using the web files, the cross-platform mobileapplication, wherein the cross-platform mobile application executes onthe mobile device irrespective of a type of an operating system of themobile device.
 2. The method of claim 1, further comprising: displaying,using a browser installed on the mobile device, the form from the formfile.
 3. The method of claim 1, further comprising: performing thegenerating in response to receiving a message from a server, the messagecomprising a workflow that is processed using the cross-platform mobileapplication.
 4. The method of claim 1, further comprising: storing theweb files in a workflow container of the mobile device, wherein theworkflow container includes a browser interface that enables browseraccess to the forms file and script file upon request, and containerservices for data access from a data source as the cross-platformapplication executes.
 5. The method of claim 1, wherein at least one webfile in the web files is a HyperText Markup Language (HTML) file, aJavaScript file and a Cascading Style Sheet (CSS) file.
 6. The method ofclaim 1, wherein at least one web file is encrypted.
 7. The method ofclaim 1, further comprising: accessing, using the cross-platformapplication, a feature native to the mobile device.
 8. The method ofclaim 1, further comprising: manipulating, using the cross-platformmobile application, data from a data source residing on a server.
 9. Themethod of clam 1, further comprising: receiving an email messagecomprising a workflow, wherein the workflow includes instructions thatmanipulate business logic of the cross-platform application; activatingthe workflow in the email message; accessing the web files in responseto the activating; and receiving data that manipulates thecross-platform application according to the instructions.
 10. A systemfor generating a cross-platform mobile application, comprising: a memorywithin a mobile device; a processor coupled to the memory and configuredto: access web files stored in the mobile device, it eluding a formsfile having multiple forms that create display screens for thecross-platform mobile application and a script file that customizes thecross-platform mobile application with business logic, wherein themultiple forms designate a display screen per form; and generate, usingthe web files the cross-platform mobile application, wherein thecross-platform mobile application executes on the mobile deviceirrespective of a type of an operating system of the mobile device. 11.The system of claim 10, wherein the processor is furthered configured todisplay, using a browser installed on the mobile device, the form fromthe form file.
 12. The system of claim 10, wherein the processor isfurthered to perform the generating in response to receiving a messagefrom a server, the message comprising a workflow processable using thecross-platform mobile application.
 13. The system of claim 10, whereinthe processor is furthered configured to: store the web files in aworkflow container of the mobile device, wherein the workflow containerincludes a browser interface that enables browser access of the formsfile and script file upon request, and container services for dataaccess from the data source as the cross-platform application executes.14. The system of claim 10, wherein at least one web file in the webfiles is a HyperText Markup Language (HTML) file that comprises forms, aJavaScript file that comprises scripts and a Cascading Style Sheet (CSS)file.
 15. The system of claim 10, wherein at least one web file isencrypted.
 16. The system of claim 10, wherein the processor is furtherconfigured to: access, using the cross-platform application, a featurenative to the mobile device.
 17. The system of claim 10, wherein theprocessor is further configured to: manipulate, using the cross-platformmobile application, data from a data source residing on a server. 18.The system of claim 10, wherein the processor is further configured to:receive an email message comprising a workflow, wherein the workflowincludes instructions that manipulate business logic of thecross-platform application; activate the workflow in the email message;access the web files in response to the activating; and receive datathat manipulates the cross-platform application according to theinstructions.
 19. A tangible computer-readable medium havinginstructions stored thereon, that when executed by at least onecomputing device, causes the at least one computing device to performoperations that generate a cross-platform mobile application, theoperations comprising: accessing web files in a mobile device, includinga forms file having multiple forms that create display screens for thecross-platform mobile application and a script file that customizes thecross-platform mobile application with business logic, wherein themultiple forms designate a display screen per form; and generating,using the web files the cross-platform mobile application, wherein thecross-platform mobile application executes on the mobile deviceirrespective of a type of an operating system of the mobile device. 20.The tangible computer-readable medium of claim 19, wherein theinstructions further comprise operations, comprising. receiving an emailmessage comprising a workflow, wherein the workflow includesinstructions that manipulate business logic of the cross-platformapplication; activating the workflow in the email message; accessing theweb files in response to the activating; and receiving data thatmanipulates the cross-platform application according to theinstructions.